package com.work.yshop.mvp.contract;

import com.work.yshop.mvp.BasePresenter;
import com.work.yshop.mvp.BaseView;

/**
 * 主页面的MVP契约接口
 */
public interface MainContract {

    /**
     * 主页面View接口
     */
    interface View extends BaseView {
        /**
         * 切换到指定页面
         * @param position 页面位置
         */
        void switchToPage(int position);
        
        /**
         * 更新导航栏选中项
         * @param itemId 菜单项ID
         */
        void updateSelectedNavItem(int itemId);
        
        /**
         * 导航到发布页面
         */
        void navigateToPublish();
    }

    /**
     * 主页面Presenter接口
     */
    abstract class Presenter extends BasePresenter<View> {
        /**
         * 处理底部导航栏点击事件
         * @param itemId 菜单项ID
         * @return 是否处理成功
         */
        public abstract boolean onNavigationItemSelected(int itemId);
        
        /**
         * 处理发布按钮点击事件
         */
        public abstract void onPublishButtonClicked();
    }
} 